package proceso.carga.pozo;


import java.io.File;
import java.io.IOException;

import java.util.Calendar;
import java.util.List;
import java.util.StringTokenizer;

import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;




import modelo.pozo.Caudal;
import modelo.pozo.PozoProduccion;

public class LectorCaudal {

	private List<PozoProduccion> listaPozo;
	private String error;
	
	public List<PozoProduccion> getListaPozo() {
		return listaPozo;
	}

	public void setListaPozo(List<PozoProduccion> listaPozo) {
		this.listaPozo = listaPozo;
	}

	public String getError() {
		return error;
	}

	public void setError(String error) {
		this.error = error;
	}

	public boolean leer(String nombreArchivo){
		
		String codigo;
		float caudalMedido;
		int a_o;
		Calendar fecha;
		boolean nombreEncontrado;
		int posicion;
		int contLinea = 0;
		String obviar;
		Sheet hoja;
		try {
			Workbook archivoExcel = Workbook.getWorkbook(new File(nombreArchivo));
			int nroHojas = archivoExcel.getNumberOfSheets();
			for(int i = 0; i<nroHojas; i++){
				hoja = archivoExcel.getSheet(i);
				a_o = Integer.parseInt(hoja.getName());
				fecha= Calendar.getInstance();
				fecha.set(a_o,11,30);
				for(int j=1; j<hoja.getRows(); j++) {
					codigo = hoja.getCell(0,j).getContents();
//					System.out.println(" leyendo hoja " +i + " linea " + j + " codigo " + codigo);
					
					if(codigo.length() > 4){
						obviar = hoja.getCell(5,j).getContents();
						
						caudalMedido = Float.parseFloat(obviar.replace(",", "."));
						nombreEncontrado = false;
						posicion=-1;
						for(int k=0;k<listaPozo.size();k++){
							if (listaPozo.get(k).getCodigo().indexOf(codigo) > -1) {
								posicion = k;
								nombreEncontrado=true;
								break;
							}
						}
						if(nombreEncontrado) {
							Caudal caudal = new Caudal();
							caudal.setGasto(caudalMedido);
							caudal.setFechaMedicion(fecha);
							caudal.setPozo(listaPozo.get(posicion));
							listaPozo.get(posicion).agregarCaudalMedido(caudal);
						}
					}
				}
			}
			
		} catch (BiffException e) {
			error = "Error en lectura del archivo excel";
			e.printStackTrace();
			return false;
		} catch (IOException e) {
			error = "Error en encontrar el archivo";
			e.printStackTrace();
			return false;
		}
		
		return true;
	}
		

}
